window.onload=function(){
    data=document.getElementById("data");//内容数据 div html内容
    include=document.getElementById("include");//实体数据 div html内容
    includeArray=new Array;//实体 数组 js内容
}
var data=null;//内容数据 div html内容
var include=null;//实体数据 div html内容
var includeArray=null;//实体 数组 js内容
var delTip=0;//模式标记 0为删除模式， 1为添加模式 2为编辑模式

//添加函数头工具
function addInclude() {
    let BN=document.getElementById("buttonName").value;//按钮名字
    if (BN=="") {     if(!confirm("未输入按钮名字！是否继续？"))return;}
    let FD=document.getElementById("functionData").value;//生成的数据
    if (FD=="") {     if(!confirm("未输入生成代码！是否继续？"))return;}
    let IB=document.getElementById("includeBody").value;//函数原型（实体数据）
    if (IB=="") {     if(!confirm("未输入函数原型！是否继续？"))return;}
    includeArray.push({BN,FD,IB});//将获取到的值储存到数组中
    refreshAdd();////刷新。添加模式
}

//显示
//单独刷新展示框
function refreshShow() {    includeArray.forEach(e=>{include.value+=e.IB;});}//将查询到的数据输出到网页上
//单独将展示框内容显示到数据部分
function includeShow() {    document.getElementById("includeShow").innerHTML=document.getElementById("include").value;}
//刷新 实体数据 和 底部按钮
function refresh() {
    var divArr=new Array;
    include.value=""; document.getElementById("addButton").innerHTML="";//清空内容
    includeArray.forEach(e=>{
        include.value+=e.IB;//将查询到的数据输出到网页上
        let newDiv=document.createElement("div");
        newDiv.className="but";
        newDiv.innerHTML=e.BN;//设置新div显示的文字
        // newDiv.onclick=function add(){data.innerHTML+=e.FD+"<br>"};//添加点击事件
        document.getElementById("addButton").appendChild(newDiv);//添加到网页
        divArr.push(newDiv);//将div保存起来，用于外部增强
    });
    tag();//刷新当前模式
    return divArr;
}
//刷新 添加事件
function refreshAdd() {
    delTip=1;//修改为添加模式
    let arr = refresh();//执行刷新方法，并编写点击事件
    arr.forEach(e=>{e.onclick=function add(){
        let fd=null;//临时变量
        includeArray.forEach(x=>{if (x.BN==e.innerHTML) { fd=x.FD}});//查找FD数据
        data.innerHTML+=fd+"<br>";//添加到点击事件中
    };});//添加点击事件
}
//刷新 删除事件
function refreshDel() {
    delTip=0;//修改为删除模式
    let arr = refresh();//执行刷新方法，并编写点击事件
    arr.forEach(e=>{
        e.setAttribute("onclick","del(\'"+e.innerHTML+"\')");//添加点击事件,传的值是自己的名字
        e.style.backgroundColor="red";//设置颜色
    });
}
//刷新 编辑事件
function refreshEdit() {
    delTip=2;//修改为编辑模式
    let arr = refresh();//执行刷新方法，并编写点击事件
    arr.forEach(e=>{
        e.setAttribute("onclick","edit(\'"+e.innerHTML+"\')");//添加点击事件,传的值是自己的名字
    });
}
//删除实体 参数是 BN 名字
function del(params) {
    for (let index = 0; index < includeArray.length; index++) {
        if (includeArray[index].BN == params) {
            includeArray.splice(index,1);//删除当前下标的数据
            console.log(params+"删除成功");
            break;
        }
    }
    refreshDel();//刷新。删除模式
    //修改自定义按钮
    function editor(params) {
        for (let index = 0; index < includeArray.length; index++) {
            if (includeArray[index].BN == params) {//找到要修改的数据
                includeArray[index].BN=document.getElementById("buttonName").value;
                includeArray[index].FD=document.getElementById("functionData").value;
                includeArray[index].IB=document.getElementById("includeBody").value;
                break;
            }
        }
    }
    
}
//显示要当前自定义按钮
function edit(params) {
    for (let index = 0; index < includeArray.length; index++) {
        if (includeArray[index].BN == params) {//找到要修改的数据
            document.getElementById("buttonName").value=params;
            document.getElementById("functionData").value=includeArray[index].FD;
            document.getElementById("includeBody").value=includeArray[index].IB;
            let fb=document.getElementById("FB");
            fb.innerHTML= '<input type="button" value="修改函数" onclick="editor("'+params+'")" title="修改自定义按钮">'
            +'<input type="button" value="添加函数" onclick="addInclude()" title="添加自定义按钮">'
            +' <input type="button" value="刪除函数" onclick="del("'+params+'")" title="刪除自定义按钮">';
            console.log(buttons);
            break;
        }
    }
}
//显示当前模式
function tag() {
    if (delTip==0) {
        document.getElementById("TAG").style.color="firebrick";
        document.getElementById("TAG").innerHTML="②删除模式";
    } else if(delTip==2){
        document.getElementById("TAG").style.color="green";
        document.getElementById("TAG").innerHTML="③编辑模式";
    }else {
        document.getElementById("TAG").style.color="dodgerblue";
        document.getElementById("TAG").innerHTML="①添加模式";
    }
}
function setClick() {
    console.log(delTip);
    let es=document.getElementById("addButton").getElementsByClassName("but");
    tag();//刷新当前模式
    if (delTip==0) {//退出删除模式
        refreshAdd();
        delTip=1;//添加模式
    } else if(delTip==1) {//进入删除模式
        refreshDel();
        delTip=2;//编辑模式
    } else{//进入编辑模式
        refreshEdit();
        delTip=0;//删除模式
    }
}

function Test() {
    edit();
}

